120 DATA 27,33,64,35,36,37,94,38,42,40,41,95,43,127,24,61,47,42
125 REM ROW 2
127 DATA 9,81,87,69,82,84,89,85,73,79,80,91,93,55,56,57,43
130 REM ROW 3 OF KEYS
140 DATA 65,83,68,70,71,72,74,75,76,59,39,13,52,53,54,45
147 DATA 90,88,67,86,66,78,77,44,46,47,49,50,51
150 REM ROW 5 OF KEYS
160 DATA 2,1,96,32,92,8,21,10,11,48,46,13
170 PRINT CHR$(4);"PR#3": REM TURN ON 80 COL
180 PRINT CHR$(18): REM 80 COL ON
190 DIM N(76)
200 IE$ = CHR$(15) + CHR$(27): REM INVERSE + ALT CHAR SET
210 OFF$ = CHR$(14) + CHR$(24): REM NORMAL + REG CHAR SET
220 HOME
230 POKE 1403,28: PRINT "Keyboard Test //e Pt"
235 PRINT : PRINT
240 PRINT " Make sure CAPS LOCK key is down. Press keys starting from top row in left to right fashion. The first row requires you to press"
242 PRINT " down the SHIFT key. The speaker will beep if a key is incorrectly pressed or is sticking. No beep upon a key press means it is not working properly. You will return to the main menu when finished."
250 PRINT : PRINT
260 FOR I = 1 TO 76: READ N(I): NEXT I
270 VTAB 12
280 PRINT TAB( 16);"ESC";" ";
290 FOR I = 2 TO 13: PRINT CHR$(N(I));" ";
300 NEXT : PRINT "DELETE";
303 POKE 1403,55: PRINT " ESC = / *": PRINT
310 PRINT TAB( 17);"TAB";" ";
320 FOR I = 20 TO 31: PRINT CHR$(N(I));" ";: NEXT
323 POKE 1403,59: PRINT "7 8 9 +"
330 PRINT
340 POKE 1403,21: FOR I = 36 TO 46: PRINT CHR$(N(I));" ";: NEXT : PRINT "RETURN";
343 POKE 1403,59: PRINT "4 5 6 -";
350 PRINT : PRINT
360 POKE 1403,22: FOR I = 52 TO 61: PRINT CHR$(N(I));" ";: NEXT
365 POKE 1403,59: PRINT "1 2 3"
370 PRINT
380 PRINT TAB( 16);"OPTION ";IE$;"A";OFF$;" ";"` ";" space bar ";"\ ";IE$;"H";OFF$;" ";IE$;"U";OFF$;" ";IE$;"J";OFF$;" ";IE$;"K";OFF$;: POKE 1403,59: PRINT "0 . ENTER"
390 RESTORE
400 READ N
410 IF N = 27 THEN VTAB 12: POKE 1403,15: REM ESC
415 IF N = 24 THEN VTAB 12: POKE 1403,55: REM CLEAR
420 IF N = 9 THEN VTAB 14: POKE 1403,16: REM TAB
425 IF N = 55 THEN VTAB 14: POKE 1403,59: REM 7
430 IF N = 65 THEN VTAB 16: POKE 1403,21: REM A
435 IF N = 52 THEN VTAB 16: POKE 1403,59: REM 4
440 IF N = 90 THEN VTAB 18: POKE 1403,22: REM Z
445 IF N = 49 THEN VTAB 18: POKE 1403,59: REM 1
450 IF N = 96 THEN VTAB 20: POKE 1403,24: REM `
460 IF N = 1 THEN GOTO 630
470 IF N = 2 THEN GOTO 670
520 GET K$
530 IF ASC(K$) = 27 AND N = 24 THEN GOTO 570
560 IF ASC(K$) < >N THEN PRINT CHR$(7);: GOTO 520
570 BL$ = " "
580 IF N = 27 OR N = 9 THEN BL$ = " "
590 IF N = 32 THEN BL$ = " "
600 IF N = 13 OR N = 127 OR N = 24 THEN BL$ = " "
605 IF N = 11 THEN PRINT BL$: VTAB 20: POKE 1403,59: GOTO 4000
620 PRINT BL$;: GOTO 400
630 REM OPEN/SOLID APPLE KEYS
635 VTAB 20: POKE 1403,22
640 FOR I = 1 TO 20000
650 IF PEEK( -16287) >127 THEN PRINT " ";: GOTO 400
660 NEXT
670 VTAB 20: POKE 1403,15
680 FOR I = 1 TO 20000
690 IF PEEK( -16286) >127 THEN PRINT " ";: GOTO 400
700 NEXT
4000 REM LAST FEW KEYS
4010 READ N
4020 GET K$
4030 IF ASC(K$) < >N THEN PRINT CHR$(7);: GOTO 4010
4040 PRINT " ";
4045 READ N
4050 GET K$
4060 IF ASC(K$) < >N THEN PRINT CHR$(7);: GOTO 4050
4070 PRINT " ";
4085 READ N
4090 GET K$
4100 IF ASC(K$) < >N THEN PRINT CHR$(7);: GOTO 4050
4110 PRINT CHR$(21): HOME : VTAB 10: HTAB 10: PRINT "KEYBOARD OPERATIONAL": PRINT : PRINT : PRINT TAB( 9);"RETURNING TO MAIN MENU": PRINT CHR$(4);"RUN HELLO2"